﻿/*********************
 * A G E   R U L E S *
 *********************/

rule(
	'AGER01',
	lhs([av(birthYear, X), get_time(T), stamp_date_time(T, date(Y, _, _, _, _, _, _, _, _), 'UTC'), Age is Y - X]),
	rhs(av(age, Age), 1)
).
rule(
	'AGER02',
	lhs([av(age, X), X >= 0, X =< 3]),
	rhs(av(ageCategorize, baby), 0.9)
).
rule(
	'AGER03',
	lhs([av(age, X), X >= 4, X =< 10]),
	rhs(av(ageCategorize, kid), 0.9)
).
rule(
	'AGER04',
	lhs([av(age, X), X >= 10, X =< 14]),
	rhs(av(ageCategorize, teen), 0.9)
).
rule(
	'AGER05',
	lhs([av(age, X), X >= 15, X =< 24]),
	rhs(av(ageCategorize, youth), 0.9)
).
rule(
	'AGER06',
	lhs([av(age, X), X >= 25, X =< 64]),
	rhs(av(ageCategorize, adult), 0.9)
).
rule(
	'AGER07',
	lhs([av(age, X), X >= 65]),
	rhs(av(ageCategorize, senior), 0.9)
).

/* Chế độ ăn cho baby:
	- Calo trung bình
	- Đạm trung bình
	- Béo trung bình
	- Nhiều vitamin
	- Nhiều khoáng
*/
rule(
	'AGER08a',
	lhs([av(ageCategorize, baby), av(hardness(X), hard)]),
	rhs(av(like_recipe(X), true), -1)
).
rule(
	'AGER08b',
	lhs([av(ageCategorize, baby), av(calorie(X), medium)]),
	rhs(av(like_recipe(X), true), 0.3)
).
rule(
	'AGER08c',
	lhs([av(ageCategorize, baby), av(protein(X), medium)]),
	rhs(av(like_recipe(X), true), 0.4)
).
rule(
	'AGER08d',
	lhs([av(ageCategorize, baby), av(fat(X), medium)]),
	rhs(av(like_recipe(X), true), 0.4)
).
rule(
	'AGER08e',
	lhs([av(ageCategorize, baby), av(vitamins(X), high)]),
	rhs(av(like_recipe(X), true), 0.4)
).
rule(
	'AGER08f',
	lhs([av(ageCategorize, baby), av(minerals(X), high)]),
	rhs(av(like_recipe(X), true), 0.4)
).

/* Chế độ ăn cho kid:
	- Calo cao
	- Đạm trung bình
*/
rule(
	'AGER09a',
	lhs([av(ageCategorize, kid), av(calorie(X), high)]),
	rhs(av(like_recipe(X), true), 0.4)
).
rule(
	'AGER09b',
	lhs([av(ageCategorize, kid), av(protein(X), medium)]),
	rhs(av(like_recipe(X), true), 0.4)
).

/* Chế độ ăn cho teen:
	Mọi thứ đều nhiều
*/
rule(
	'AGER10a',
	lhs([av(ageCategorize, teen), av(calorie(X), high)]),
	rhs(av(like_recipe(X), true), 0.8)
).
rule(
	'AGER10b',
	lhs([av(ageCategorize, teen), av(protein(X), high)]),
	rhs(av(like_recipe(X), true), 0.8)
).
rule(
	'AGER10c',
	lhs([av(ageCategorize, teen), av(fat(X), high)]),
	rhs(av(like_recipe(X), true), 0.8)
).
rule(
	'AGER10d',
	lhs([av(ageCategorize, teen), av(vitamins(X), high)]),
	rhs(av(like_recipe(X), true), 0.8)
).
rule(
	'AGER10e',
	lhs([av(ageCategorize, teen), av(minerals(X), high)]),
	rhs(av(like_recipe(X), true), 0.8)
).
rule(
	'AGER10f',
	lhs([av(ageCategorize, teen), av(fiber(X), high)]),
	rhs(av(like_recipe(X), true), 0.8)
).

/* Chế độ ăn cho thanh niên:
	Mọi thứ đều nhiều
*/
rule(
	'AGER11a',
	lhs([av(ageCategorize, youth), av(calorie(X), high)]),
	rhs(av(like_recipe(X), true), 0.4)
).
rule(
	'AGER11b',
	lhs([av(ageCategorize, youth), av(protein(X), high)]),
	rhs(av(like_recipe(X), true), 0.4)
).
rule(
	'AGER11c',
	lhs([av(ageCategorize, youth), av(fat(X), high)]),
	rhs(av(like_recipe(X), true), 0.4)
).
rule(
	'AGER11d',
	lhs([av(ageCategorize, youth), av(vitamins(X), high)]),
	rhs(av(like_recipe(X), true), 0.4)
).
rule(
	'AGER11e',
	lhs([av(ageCategorize, youth), av(minerals(X), high)]),
	rhs(av(like_recipe(X), true), 0.4)
).
rule(
	'AGER11f',
	lhs([av(ageCategorize, youth), av(fiber(X), high)]),
	rhs(av(like_recipe(X), true), 0.4)
).

/* Chế độ ăn cho người trưởng thành:
	- Mọi thứ đều nhiều
	- Ít béo
	- Đạm trung bình
	- Tăng vitamin, khoáng
*/
rule(
	'AGER12a',
	lhs([av(ageCategorize, adult), av(calorie(X), high)]),
	rhs(av(like_recipe(X), true), 0.4)
).
rule(
	'AGER12b',
	lhs([av(ageCategorize, adult), av(protein(X), high)]),
	rhs(av(like_recipe(X), true), -0.5)
).
rule(
	'AGER12c',
	lhs([av(ageCategorize, adult), av(fat(X), low)]),
	rhs(av(like_recipe(X), true), 0.4)
).
rule(
	'AGER12d',
	lhs([av(ageCategorize, adult), av(fat(X), high)]),
	rhs(av(like_recipe(X), true), -0.5)
).
rule(
	'AGER12e',
	lhs([av(ageCategorize, adult), av(vitamins(X), high)]),
	rhs(av(like_recipe(X), true), 0.45)
).
rule(
	'AGER12f',
	lhs([av(ageCategorize, adult), av(minerals(X), high)]),
	rhs(av(like_recipe(X), true), 0.45)
).
rule(
	'AGER12g',
	lhs([av(ageCategorize, adult), av(fiber(X), high)]),
	rhs(av(like_recipe(X), true), 0.45)
).

/* Chế độ ăn cho người già:
	- Rau tươi 
	- Nhiều cá 
	- Chất xơ 
	- Giảm chất đường, chất bột 
	- Ít chất béo 
	- Nhiều thịt 
	- Ít muối
*/
rule(
	'AGER13a',
	lhs([av(ageCategorize, senior), av(hardness(X), hard)]),
	rhs(av(like_recipe(X), true), -0.6)
).
rule(
	'AGER13b',
	lhs([av(ageCategorize, senior), av(fiber(X), high)]),
	rhs(av(like_recipe(X), true), 0.45)
).
rule(
	'AGER13c',
	lhs([av(ageCategorize, senior), av(fat(X), low)]),
	rhs(av(like_recipe(X), true), 0.4)
).
rule(
	'AGER13d',
	lhs([av(ageCategorize, senior), av(fat(X), high)]),
	rhs(av(like_recipe(X), true), -0.5)
).
rule(
	'AGER13e',
	lhs([av(ageCategorize, senior), av(glucose(X), low)]),
	rhs(av(like_recipe(X), true), 0.4)
).
rule(
	'AGER13f',
	lhs([av(ageCategorize, senior), av(glucose(X), high)]),
	rhs(av(like_recipe(X), true), -0.5)
).
rule(
	'AGER13g',
	lhs([av(ageCategorize, senior), av(taste(X), salty)]),
	rhs(av(like_recipe(X), true), -0.3)
).